module.exports = {
	/**
	 * 添加单条数据(申请代理商)
	 */
	main: async (event) => {
		let { data = {}, userInfo, util, filterResponse, originalParam } = event;
		let { customUtil, uniID, config, pubFun, vk, db, _ } = util;
		let { uid } = data;
		let res = { code: 0, msg: 'ok' };
		// 业务逻辑开始-----------------------------------------------------------
		// 获取前端传过来的参数
		let {
			form
		} = data;
		// 参数验证结束
		let dbName = "a_agent_apply"; // 表名
		// 参数验证开始
		//如果是未通过重新提交修改，则form里会存在_id,需先删除，再添加新的申请。否则数据库里会有多条申请记录 
		if(form._id){
			let delOldInfo = await db.collection('a_agent_apply').doc(form._id).remove()
		}
		form.isAgree = 0;
		const validationResult = await validateForm(form);
		let num = await vk.baseDao.count({
			dbName, // 表名
			whereJson: { // 条件
				phone: form.phone
			}
		});
		if (validationResult.isValid && num <= 0) {
			// 表单通过验证，可以进行下一步处理

			// 执行 数据库add 命令
			res.id = await vk.baseDao.add({
				dbName,
				dataJson: {
					user_id: uid,
					name: form.name,
					phone: form.phone,
					wx: form.wx,
					remarks: form.remarks,
					isAgree: 0
				}
			});
		} else {
			// 表单未通过验证，输出错误消息
			console.error(validationResult.errors);
			res.msg = "不能为空，请重新填写"
		}
		// 业务逻辑结束-----------------------------------------------------------
		return res;
		async function validateForm(form) {
			const errors = {};

			if (!form.name) {
				errors.name = '姓名不能为空';
			}

			if (!form.phone) {
				errors.phone = '手机号不能为空';
			}

			if (!form.wx) {
				errors.wx = '微信号不能为空';
			}
			return {
				isValid: Object.keys(errors).length === 0,
				errors,
			};
		}

	}
}
